Computers were developed to aid people with repetitive tasks that were deemed to be extremely time consuming. Most of the early computers were used for complex mathematical problem solving. The first computing machines were extremely large compared to computers utilized today. Despite their enormous size, the early machines had vastly less computing power than today's machines. The sizes of computing devices were typically driven by the sizes of the existing electronic components of that era. This meant that only large research facilities or big businesses could employ computing machines. As new technology allowed for smaller electronic devices to be developed, computing devices also diminished in size. Although still lacking in power by today's standards, the size of the computing machine was reduced enough that it could be placed on a typical desk. Thus, the “desktop computer” was born. This allowed users to have computing technology available in locations other than a central computing building. People found that having the capability to utilize computing technology at their work desk, rather than submitting computing problems to a central location, made them much more productive at their jobs. To make these remotely located computers more accessible, connections were made between the computers to form “networks.” This allowed a greater exchange of information from one computing location to another, and, in some cases, effectively creating one large computing system. Eventually, the idea of moving the desktop computer to the home environment to provide even more convenience for doing work became a reality and networks were extended to include these and other “offsite” locations as well.
With the advent of Internet applications, computing system requirements and demands increased dramatically. Many businesses, for example, have made important investments relating to Internet technology to support growing electronic businesses such as e-commerce. Since companies are relying on an ever increasing amount of network commerce to support their businesses, computing systems generally have become more complex in order to ensure that servers providing network services never fail. Consequently, system reliability, usage, and management are important aspects to the modern business model. These aspects are generally heightened, especially with small businesses which must control overages and waste tightly in order to remain competitive in tight markets.
A first approach for providing powerful and reliable services utilized a large multiprocessor system (e.g., mainframe) for managing servers, for example. Since more than one processor may be involved within a large system, services can continue even if one of a plurality of processors fails. Unfortunately, these large systems can also be extraordinarily expensive and available to only the largest of corporations. A second approach for providing services involves employing a plurality of lesser expensive systems (e.g., off-the-shelf personal computers) individually configured as an array to support a desired service. Although these systems can provide a more economical hardware solution, system management and administration of individual servers is generally more complex and time consuming.
Currently, management of a plurality of servers is a time-intensive and problematic endeavor. For example, managing server content (e.g., software, configuration, data files, components, etc.) requires administrators to explicitly distribute (e.g., manually and/or through custom script files) new or updated content and/or configurations (e.g., web server configuration, network settings, etc.) across the servers. If a server's content becomes corrupted, an administrator often has no automatic means of correcting the problem. Furthermore, configuration, load-balance adjusting/load balance tool selection, and monitoring generally must be achieved via separate applications. Thus, management of an entity (e.g., a plurality of computers acting collectively) as a whole, generally requires individual configuration of loosely coupled services that inherently increases errors and time expenditure.
The problems are often compounded when usage of the system includes resource utilization that is outside the scope of normal business activity. This taxes the resources of the system and reduces profitability of businesses. Some examples of this type of activity include, personal emails, web “surfing,” and network gaming and the like that are counter to a business' goals. Thus, administrators are not only tasked with keeping a network system up and running, they may also be required to assist the business with fine tuning usage of the network itself. This requires information beyond what is typically available to a system administrator. This problem is compounded by the fact that most small businesses cannot afford to have their own system administrators “in house.” Therefore, most activities are performed from a remote location by a provider who may also be servicing many other network systems for other businesses. Thus, the amount of information required to efficiently perform normal health monitoring and statusing of multi-systems becomes an overwhelming task, especially if a business also expects facilitation with improving a system's utilization.